Containerized communications gateway

ABSTRACT

Methods and systems for facilitating manufacturing and, in particular, methods and systems that run at least one driver on at least one containerized processing unit to provide communication with at least one piece of machinery. By interfacing with existing machinery and running the driver(s) on a containerized processing unit, an operator is able to modify at least one operational parameter related to the at least one piece of machinery without risk of affecting the stability of other parts of the system.

CROSS REFERENCE TO RELATED APPLICATIONS

The present application claims the benefit of co-pending U.S. provisional application No. 62/149,496, filed on Apr. 17, 2015, the entire disclosure of which is incorporated by reference as if set forth in its entirety herein.

FIELD

This disclosure relates to methods and systems for facilitating manufacturing, including embodiments using containerized processing units configured to run at least one modifiable driver that enables communications with a piece of machinery.

BACKGROUND

Modern factories and other manufacturing facilities are increasingly using automated technologies. Often times it is desirable learn about the operation of machinery and to control the operation of machinery. To accomplish this, facilities have come to rely on automation equipment such as programmable logic controllers (PLCs). PLCs are essentially microcontrollers used to automate many different types of machines and in different applications.

PLCs, however, suffer from significant disadvantages. For example, PLCs are expensive and typically are difficult to program. Additionally, they are application-specific and it is difficult for them to perform the functions of a computer and vice versa. It is also difficult for PLCs to interface with existing machinery and for operators to modify or otherwise change existing operating procedures.

PLC-based solutions also tend not to be modular or useful across multiple types of machinery or other types of tool devices. Accordingly, manufacturers of industrial computing equipment typically do not benefit from economies of scale due to a customer's specific business model and/or the manufacturer has a long tail product inventory approach, in which case certain products that are not mass-produced or highly marketed may require a longer amount of time in order to become profitable.

Additionally, it is generally difficult to quickly use off-the-shelf equipment with higher level, abstraction drivers, such as web-based and/or universal serial bus (USB) drivers. Moreover, there may also be issues with security because module updates can be difficult in a monolithic PLC/C based system.

A need exists, therefore, for containerized methods and systems that can non-invasively interface with different types of machinery for facilitating manufacturing that overcome these disadvantages.

SUMMARY

This summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description section. This summary is not intended to identify or exclude key features or essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter.

In one aspect, embodiments of the present invention relate to a system for facilitating manufacturing, the system including a user interface for at least receiving input from a user and for providing output to a user; a communication mechanism for enabling communication between the user interface and at least one piece of machinery or at least one sensor; and at least one containerized processing unit configured to run at least one driver providing communication between the user interface and the at least one piece of machinery, wherein the at least one driver enables the user to modify at least one operational parameter related to the at least one piece of machinery or the at least one sensor.

In one embodiment, the at least one operational parameter relates to execution of at least one process performed by the at least one piece of machinery.

In one embodiment, the communication mechanism enables communication with the at least one piece of machinery via a communication protocol selected from the group consisting of MTConnect, OPC Unified Architecture, Modbus, and controller area network bus.

In one embodiment, the communication mechanism enables communication with the at least one piece of machinery via at least one of radio-frequency identification and barcode communication.

In one embodiment, the system further comprises a network-connected storage for storing information related to the at least one driver.

In one embodiment, the at least one containerized processing unit ensures system integrity by detecting at least one of over voltage, under voltage, and a short circuit in the system.

In one embodiment, the containerized processing unit enables a user to modify the driver and to receive feedback regarding the modification in substantially real time.

In another aspect, embodiments of the invention relate to a method for facilitating manufacturing. The method includes providing a user interface for at least receiving input from a user and for providing output to a user; enabling communication, via a communication mechanism, between the user interface and at least one piece of machinery or at least one sensor; and running, on at least one containerized processing unit, at least one driver providing communication between the user interface and the at least one piece of machinery, wherein the at least one driver enables the user to modify at least one operational parameter related to the at least one piece of machinery or the at least one sensor.

In one embodiment, the at least one operational parameter relates to execution of at least one process performed by the at least one piece of machinery.

In one embodiment, the method further comprises receiving at least one modification to the driver from a user. In one embodiment, the method further comprises providing feedback to the user regarding the modification to the driver in substantially real time.

In one embodiment, the communication mechanism enables communication with the at least one piece of machinery via a communication protocol selected from the group consisting of MTConnect, OPC Unified Architecture, Modbus, and controller area network bus.

In one embodiment, the communication mechanism enables communication with the at least one piece of machinery at least one of radio-frequency identification and barcode communication.

In one embodiment, the method further comprises storing, via a network-connected storage, information related to the at least one driver.

In one embodiment, the method further comprises detecting, via the at least one containerized processing unit, at least one of over voltage, under voltage, and a short circuit in the system.

These and other features and advantages, which characterize the present non-limiting embodiments, will be apparent from a reading of the following detailed description and a review of the associated drawings. It is to be understood that both the foregoing general description and the following detailed description are explanatory only and are not restrictive of the non-limiting embodiments as claimed.

BRIEF DESCRIPTION OF THE DRAWINGS

Non-limiting and non-exhaustive embodiments are described with reference to the following figures in which:

FIG. 1 illustrates the architecture of a system for facilitating manufacturing in accordance with one embodiment;

FIG. 2 schematically illustrates the architecture of the cell (gateway component) of FIG. 1 in accordance with one embodiment;

FIG. 3 schematically illustrates the cell subsystem of FIG. 2 in accordance with one embodiment;

FIG. 4 schematically illustrates the power management module 302 of FIG. 3 in accordance with one embodiment;

FIG. 5 schematically illustrates the compute module 304 of FIG. 3 in accordance with one embodiment;

FIG. 6 schematically illustrates the communications bridge 306 of FIG. 3 in accordance with one embodiment;

FIG. 7 schematically illustrates the Quality Assurance/Development module 308 of FIG. 3 in accordance with one embodiment;

FIG. 8 schematically illustrates the digital output module 310 of FIG. 3 in accordance with one embodiment;

FIG. 9 schematically illustrates the digital input module 312 of FIG. 3 in accordance with one embodiment;

FIG. 10 schematically illustrates the analog input module 314 of FIG. 3 in accordance with one embodiment;

FIG. 11 schematically illustrates the Universal Serial Bus module 316 of FIG. 3 in accordance with one embodiment;

FIG. 12 schematically illustrates the user panel 318 of FIG. 3 in accordance with one embodiment;

FIG. 13 schematically illustrates the memory 320 of FIG. 3 in accordance with one embodiment of the invention;

FIG. 14 schematically illustrates the field panel 322 of FIG. 3 in accordance with one embodiment;

FIG. 15 depicts a flowchart of a method for facilitating manufacturing in accordance with one embodiment;

FIG. 16 depicts a flowchart of a method for facilitating manufacturing in accordance with another embodiment; and

FIG. 17 depicts a flowchart of a method for facilitating manufacturing in accordance with yet another embodiment.

In the drawings, like reference characters generally refer to corresponding parts throughout the different views. The drawings are not necessarily to scale, emphasis instead being placed on the principles and concepts of operation.

DETAILED DESCRIPTION

Various embodiments are described more fully below with reference to the accompanying drawings, which form a part hereof, and which show specific exemplary embodiments. However, embodiments may be implemented in many different forms and should not be construed as limited to the embodiments set forth herein; rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the embodiments to those skilled in the art. Embodiments may be practiced as methods, systems or devices. Accordingly, embodiments may take the form of a hardware implementation, an entirely software implementation or an implementation combining software and hardware aspects. The following detailed description is, therefore, not to be taken in a limiting sense.

Reference in the specification to “one embodiment” or to “an embodiment” means that a particular feature, structure, or characteristic described in connection with the embodiments is included in at least one embodiment of the invention. The appearances of the phrase “in one embodiment” in various places in the specification are not necessarily all referring to the same embodiment.

Some portions of the description that follow are presented in terms of symbolic representations of operations on non-transient signals stored within a computer memory. These descriptions and representations are used by those skilled in the data processing arts to most effectively convey the substance of their work to others skilled in the art. Such operations typically require physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of electrical, magnetic or optical signals capable of being stored, transferred, combined, compared and otherwise manipulated. It is convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like. Furthermore, it is also convenient at times, to refer to certain arrangements of steps requiring physical manipulations of physical quantities as modules or code devices, without loss of generality.

However, all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities. Unless specifically stated otherwise as apparent from the following discussion, it is appreciated that throughout the description, discussions utilizing terms such as “processing” or “computing” or “calculating” or “determining” or “displaying” or the like, refer to the action and processes of a computer system, or similar electronic computing device, that manipulates and transforms data represented as physical (electronic) quantities within the computer system memories or registers or other such information storage, transmission or display devices. Portions of the present disclosure include processes and instructions that may be embodied in software, firmware or hardware, and when embodied in software, may be downloaded to reside on and be operated from different platforms used by a variety of operating systems.

The present disclosure also relates to an apparatus for performing the operations herein. This apparatus may be specially constructed for the required purposes, or it may comprise a general-purpose computer selectively activated or reconfigured by a computer program stored in the computer. Such a computer program may be stored in a computer readable storage medium, such as, but is not limited to, any type of disk including floppy disks, optical disks, CD-ROMs, magnetic-optical disks, read-only memories (ROMs), random access memories (RAMs), EPROMs, EEPROMs, magnetic or optical cards, application specific integrated circuits (ASICs), or any type of media suitable for storing electronic instructions, and each may be coupled to a computer system bus. Furthermore, the computers referred to in the specification may include a single processor or may be architectures employing multiple processor designs for increased computing capability.

The processes and displays presented herein are not inherently related to any particular computer or other apparatus. Various general-purpose systems may also be used with programs in accordance with the teachings herein, or it may prove convenient to construct more specialized apparatus to perform one or more method steps. The structure for a variety of these systems is discussed in the description below. In addition, any particular programming language that is sufficient for achieving the techniques and implementations of the present disclosure may be used. A variety of programming languages may be used to implement the present disclosure as discussed herein.

In addition, the language used in the specification has been principally selected for readability and instructional purposes and may not have been selected to delineate or circumscribe the disclosed subject matter. Accordingly, the present disclosure is intended to be illustrative, and not limiting, of the scope of the concepts discussed herein.

Unless specifically stated otherwise as apparent from the following discussion, it is appreciated that throughout the description, discussions utilizing terms such as “processing” or “computing” or “calculating” or “determining” or “displaying” or the like, refer to the action and processes of a computer system, or similar electronic computing device, that manipulates and transforms data represented as physical (electronic) quantities within the computer system memories or registers or other such information storage, transmission or display devices.

Certain aspects of the present invention include process steps and instructions that could be embodied in software, firmware or hardware, and when embodied in software, could be downloaded to reside on and be operated from different platforms used by a variety of operating systems.

The language used in the specification has been principally selected for readability and instructional purposes, and may not have been selected to delineate or circumscribe the inventive subject matter. Accordingly, the disclosure of the present invention is intended to be illustrative, but not limiting, of the scope of the invention, which is set forth in the claims.

Features of the present invention relate generally to methods and systems for facilitating manufacturing. The methods and systems run at least one driver on at least one containerized processing unit to provide communication between a user interface and at least one piece of machinery. By interfacing with existing machinery and running the driver(s) on a containerized processing unit, an operator is able to modify at least one operational parameter related to the at least one piece of machinery and without risk of affecting the stability of other parts of the system.

In the context of the present application, the terms “operator” and “user” may be used interchangeably. These terms may refer to a person within a manufacturing facility who operates or otherwise uses machinery or may refer to a person who modifies at least one operational parameter related to the machinery, for example.

In the context of the present application, the terms “operational parameter” may refer to how machinery is operated. Operational parameters may refer to, for example, processes performed by the machinery, steps of the processes performed by the machinery, and other operating characteristics of the machinery. This list is non-exhaustive and it is contemplated that other types of operational parameters may be included without departing from the scope of the invention.

Although the features of the present application are described as being implemented in manufacturing facilities such as factories, it is contemplated that the features of the invention may be used in other applications. Applications such as those in farming, surveillance, counter-terrorism, and construction, for example, may benefit from the features of the invention.

FIG. 1 depicts the overall system architecture 100 for facilitating manufacturing in accordance with one embodiment of the invention. Information may be communicated between the storage 102 via an internet connection 104 and a plurality of cells 106. In the context of the present application, a “cell” may refer to a gateway component that collects information from the factory floor and sends it to the network-connected storage 102 such as, for example, a cloud-based server. The cells 106 may connect, for example, to a PLC to record output from the PLC, or to an RFID reader, barcode scanner, or to a piece of manufacturing equipment.

The cells 106 may be implemented as hardware that physically or electrically connects to manufacturing machinery to actively or passively collect information, and/or as a software program that interfaces with machine networks (e.g., OPC-UA). The cells 106 may themselves act as standard interface servers (e.g., OPC-UA) to allow for integration into existing plant-floor IT infrastructure. As shown in FIG. 1, the cells 106 may connect to the internet 104 via any type of hardwired or wireless connection (e.g., Ethernet, 802.11x, Bluetooth, etc.).

Also shown in FIG. 1, a cell 106 may also be in operable communication with a mobile device 108 with a user interface 110. The mobile device 108 may be implemented as a PC, tablet, smartphone, laptop, or the like, and may present information related to intra-factory data (e.g., video).

FIG. 2 presents an overview of the cell architecture 200, namely, the cell platform 202. The cell platform 202 may include a logging module 204 for logging information regarding program execution and a network management module 206 configured to manage communication with the storage 102.

The cell platform 202 may include a plurality of containerized device drivers for controlling various devices attached to the cell platform 202. These drivers 207 may include programs for controlling devices connected via Universal Serial Bus (USB) protocol 208, Inter-integrated circuit (I2C) protocol 210, and general purpose input/output (GPIO) communications 212. It is contemplated that other types of device drivers, whether available now or invented hereafter, may be used in accord with various embodiments of the invention.

The cell subsystem 214 includes various components for controlling operation of the cell platform 202 and is illustrated in FIG. 3. As shown in FIG. 3, the cell subsystem 214 may include a power management module (PMM) 302, a compute module 304, a communications bridge 306, an optional Quality Assurance/Development module 308 (e.g., for performing quality assurance and testing procedures), a digital output module 310, a digital input module 312, an analog input module 314, a USB module 316, a user panel 318, memory 320, and a field panel 322.

FIG. 3 is merely exemplary and it is contemplated that the cell subsystem 216 may include other components in lieu of and/or in addition to those illustrated. Other types of embodiments are expressly contemplated such, as for example, taking advantage of a standardized computing input/output interface, so that satisfying certain computing requirements can be accomplished by simply swapping hardware.

FIG. 4 illustrates the PMM 302 of FIG. 3 in accordance with one embodiment of the invention. The PMM 302 may include a power supply 402, an eFUSE module 404 to allow for dynamic operation of the PMM 302 (e.g., an electronic-fuse consisting of several integrated circuits and passive components), a buck converter module 406, and a supervisory circuit 408. This is merely an exemplary configuration of the PMM 302 and it is contemplated that other components in lieu of and/or in addition to those shown may be included. For example, although specific component model numbers are listed, it is contemplated that other models may be used as long as the features of the invention may be accomplished.

FIG. 5 illustrates the compute module 304 of FIG. 3 in accordance with one embodiment of the invention. The compute module 304 may be implemented as, for example, a Raspberry Pi® device, an Odroid® device, or other similar consumer hardware. This list is non-exhaustive and it is expressly contemplated that other types and configurations of the compute module 304 may be used. For example, the cell hardware could be designed to incorporate any processing devices and memory directly on the board.

The compute module 304 may further include a plurality of connection mechanisms 502, such as, but not limited to, 40P HDR, I2C, Serial Peripheral Interface (SPI), and/or GPIO. The type of connection used may depend on the connected component. For example, the I2C connection may be in connection with the QA/DEV module 308, the digital output module 310, the digital input module 312, the analog input module 314, the user panel 318, and memory 320. The SPI connection may be used to connect with the QA/DEV module 308 and the communication bridge 306, and the GPIO connection may be in connection with the user panel 318, for example.

The compute module 304 may also include a USB connection 504 to receive, for example, a WiFi adaptor, an external console 506, and/or an Ethernet connection 508. This USB connection 504 may further be in connection with the field panel 322, for example.

FIG. 6 illustrates the communications bridge 306 of FIG. 3 in accordance with one embodiment of the invention. The communications bridge 306 may include a CAN BUS 602, a meshed radio 604, and a MODBUS 606. This illustration of the communications bridge 306 is merely exemplary and it is contemplated that the communications bridge 306 may be include other components in addition to and/or in lieu of those illustrated. Although specific component model numbers are shown, it is contemplated that other models may be used as long as the features of the invention may be accomplished.

FIG. 7 illustrates the Quality Assurance and Development Module 308 of FIG. 3 in accordance with one embodiment. The QA/DEV module 308 may include session initiation protocols for I2C 702 and for SPI 704 for at least signaling and/or controlling communication sessions over the respective communication mechanism.

FIG. 8 illustrates the digital output module 310 of FIG. 3 in accordance with one embodiment of the invention. The digital output module 310 may process digital outputs and may include a general purpose input card 802, a general purpose output module 804, a driver module 806 including a transient voltage suppressor (TVS) to protect against electrostatic discharge (ESD), status (STS) LEDS 808, a 3.50 mm header connector 810, and a power supply 812. Although specific component model numbers are shown, it is contemplated that other models may be used as long as the features of the invention may be accomplished.

FIG. 9 schematically illustrates the digital input module 312 of FIG. 3 in accordance with one embodiment of the invention. The digital input module 312 may process digital inputs and may include status LEDS 902, a general purpose input card 904, a general purpose output module 906, a 3.50 mm header connector 908, and a power supply 910. Although specific component model numbers are shown, it is contemplated that other models may be used as long as the features of the invention may be accomplished.

FIG. 10 schematically illustrates the analog input module 314 of FIG. 3 in accordance with one embodiment of the invention. The analog input module 314 may process analog inputs and include status LEDS 1002, an analog-to-digital converter 1004, an analog input condition module 1006 with a linear optocoupler and an amplifier, a 3.50 mm header connector 1008, and a power supply 1010. Although specific component model numbers are shown, it is contemplated that other models may be used as long as the features of the invention may be accomplished.

FIG. 11 schematically illustrates the Universal Serial Bus module 316 of FIG. 3 in accordance with one embodiment of the invention. The USB 316 may connect with a plurality of different devices such as a linear regulator 1102, a high dynamic range (HDR) imaging device 1104, an integrated circuit 1106, interface 1108, power distribution switches 1110, inputs 1112, and power supply 1114. These components may be in operable communication with the compute module 304. Although specific component model numbers are shown, it is contemplated that other models may be used as long as the features of the invention may be accomplished.

FIG. 12 schematically illustrates the user panel 318 in accordance with one embodiment of the invention. The user panel 318 may act as an input/output device for user interaction. The user panel 318 may include a user interface in the form of buttons, displays, and other components to enable interaction with a user.

FIG. 13 schematically illustrates the memory 320 of FIG. 3 in accordance with one embodiment of the invention. In this embodiment, the memory is implemented as an electrically erasable programmable read-and-write memory 1302. However, it is contemplated that other types of memory 320 may be used as long as the features of the invention may be accomplished.

FIG. 14 schematically illustrates the field panel 322 of FIG. 3 in accordance with one embodiment of the invention. The field panel 322 may include a D-Subminiature (DB) connector 1402, a modular connector (e.g., RJ-45) 1404, and an antenna 1406. Although specific component types/models are listed, it is contemplated that other models and types may be used as long as the features of the invention may be accomplished.

Referring back to FIG. 2, the cell architecture 200 may contain include various system busses (e.g., a USB bus 216, an I2C bus 218, and a GPIO bus 220), each connected with the corresponding device driver 208, 210, and 212. These busses enable connectivity with a plurality of devices 222 a-f and other peripherals in the field.

The devices 222 a-f may be any type of machinery with which operators interact. These devices 222 a-f may also be implemented or otherwise connected with interfaces such as touchscreen computers, digital tablets, interactive projector-camera systems, head-mounted displays (HMDs), laptops, smart phones, smart watches, or the like.

Operators can log in and log out using these devices, view standard work, call for maintenance, review important factory-floor machine configuration settings and report information through forms, among other capabilities. The design and functions displayed to operators may be created by manufacturing engineers using the software.

Features of the present invention therefore enable communication with existing devices such as machinery on a factory floor. Additionally, the cell platform 202 provides a gateway in a non-invasive, or minimally-invasive way for the often complex, custom, unconnected and proprietary machines used on a factory floor to be integrated into the system.

This configuration allows production engineers to write “drivers” that interpret monitored signals (e.g., from a machine or tool device on the factory floor) and translate them into messages for operators or for storage. The sent messages can be used to trigger events in the execution of a process or to store data about the state of the machine or process for further analysis.

It is also contemplated that a user interface, such as a projection-based or touch-screen-based interface configured with a device described above can be combined into a single physical unit with the cell 106. The gateway (as enabled by the cell 106) may also be completely software-based, and communicate via standard network protocols (e.g., OPC, MTConnect). It is also contemplated that communication may occur by simply detecting an electrical signal beyond a specific threshold by two devices.

The cell 106 is configured to be agnostic with regard executing software and drivers to accommodate different kinds of devices and to allow for transitions between devices (including virtual types of entities). The cell 106 also provides resiliency through the use of containerized drivers. In this configuration, the cell 106 software, as well as the environment that it runs on, is packaged in individual containers including the cell 106 software and various application dependencies, but typically omitting operating system components that are accessed at run time through interfaces and other abstractions.

This allows for, among other features, transitions between different devices. Additionally, this allows for operators to develop and/or edit drivers themselves and without risk of affecting the stability of other parts of the system 100. As the operating system is outside the container, the drivers in the container can be edited without shutting down or restarting the operating system, which could adversely affect manufacturing operations. When changes to the drivers are made, the operating system can execute the newly-revised driver providing an operator with immediate feedback concerning the effects and efficacy of the driver changes. Similarly, this sandbox-like configuration provides for increased security.

Features of the present invention also provide resiliency in the event of power failure of system components or if a network connection is down. For example, the cells 106 may have radio diversity and cell-specific links to monitor operations in the event of power failure or connection failure. Additionally, the cell 106 may be configured to detect under/over voltage (e.g., via transient voltage suppressors), short circuits, or the like. The cell 106 may be configured to communicate an alert to that effect to an operator or to take steps to autonomously respond to the issue and to take any steps to prevent loss of data. For example, components of the system 100 may be power source agnostic and configured to seamlessly transition between power sources as desired.

This configuration also creates an open and extensible platform. For example, the system 100 may provide application programming interfaces (APIs) to third-party application developers to enable them to create (and edit) custom manufacturing applications. Using the cell platform 202, developers can use advanced interaction, sensing, and data collection interfaces to create and deploy customized applications on the platform.

This provides an advantage to existing manufacturing operations as it removes the need to heavily invest in the technical aspects of creating, instrumenting, and deploying processes. In turn, this allows production engineers to focus on solving manufacturing problems specific to their manufacturing domain.

In another aspect, the open nature of the cell platform 202 enables the integration of third party tools and data services. Such services may include business intelligence, data analytics, data visualization, and others. This allows non-traditional manufacturing-related information services that are available on the internet to be integrated in a controlled environment and provided to operators and production engineers on a factory floor. For example, social web services, news, weather, or any other feed or service that is web native could easily be integrated.

Additionally, the cell platform 202 provides means to allow specific planning procedures to be embedded in the system 100. Such procedures may be used to make use of the granular data the system 100 collects, and use it to achieve better resource planning and allocation for manufacturing operations.

FIG. 15 depicts a flowchart of a method 1500 for facilitating manufacturing in accordance with one embodiment. Step 1502 involves providing a user interface for at least receiving input from an operator and for providing output to an operator. The user interface may be configured as a device such as devices 222 a-f and as discussed previously.

Step 1504 involves enabling communication, via a communication mechanism, between the user interface and at least one piece of machinery. The communication mechanism(s) may include of those discussed previously such as, for example, USB, I2C, GPIO, or the like. These connection mechanisms may enable communication with at least one piece of machinery or other tool devices such as those used in manufacturing facilities.

Step 1506 involves running, on at least one containerized processing unit, at least one driver providing communication between the user interface and at least one piece of machinery. The at least one driver enables the operator to modify at least one operational parameter related to the at least one piece of machinery. As discussed previously, the containerization of the driver(s), such as USB, I2C, GPIO, and a processing unit (e.g., cell), allows for operators to modify an operational parameter of machinery associated with a particular driver and without risk of affecting the stability of other parts of the system.

FIG. 16 depicts a flowchart of a method 1600 for facilitating manufacturing in accordance with another embodiment of the invention. Steps 1602, 1604, and 1606 are similar to steps 1502, 1504, and 1506, respectively, of FIG. 15 and are not repeated here.

Step 1608 involves receiving at least one modification to the driver from a user. The user may be a factory worker or an engineer, for example. The user may, via the user interface (e.g., a user interface of device 222 of FIG. 2), modify at least one operational parameter related to the at least one piece of machinery. This operational parameter may relate to how a particular piece of machinery executes a process, for example.

Step 1610 involves providing feedback to the user regarding the modification to the driver in substantially real time. The phrase “in substantially real time” may mean in real time or with some minimal delay that does not significantly diminish the value of the feedback provided to the user.

This feedback may be provided to the user via the user interface, for example. These steps of modifying the operational parameter and receiving feedback regarding the modification may be referred to as “in-browser driver editing.” Features of the present invention do not require hardware to develop or modify the drivers and users can instead edit the driver and receive live feedback regarding the changes made to the driver. Therefore, users may quickly learn how particular edits affect the driver (and whether or not their modification will work properly) without needing to shut down other parts of the system for testing.

FIG. 17 depicts a flowchart of a method 1700 for facilitating manufacturing in accordance with yet another embodiment. Steps 1702, 1704, and 1706 are similar to steps 1502, 1504, and 1506, respectively, of FIG. 15 and are not repeated here.

Step 1708 involves storing, via a network-connected storage, information related to the at least one driver. This storage may be a cloud-based storage or a local storage, for example. The stored information may relate to at least one operational parameter of machinery associated with the at least one driver as well as a modification to the driver.

The methods, systems, and devices discussed above are examples. Various configurations may omit, substitute, or add various procedures or components as appropriate. For instance, in alternative configurations, the methods may be performed in an order different from that described, and that various steps may be added, omitted, or combined. Also, features described with respect to certain configurations may be combined in various other configurations. Different aspects and elements of the configurations may be combined in a similar manner. Also, technology evolves and, thus, many of the elements are examples and do not limit the scope of the disclosure or claims.

Embodiments of the present disclosure, for example, are described above with reference to block diagrams and/or operational illustrations of methods, systems, and computer program products according to embodiments of the present disclosure. The functions/acts noted in the blocks may occur out of the order as shown in any flowchart. For example, two blocks shown in succession may in fact be executed substantially concurrently or the blocks may sometimes be executed in the reverse order, depending upon the functionality/acts involved. Additionally, or alternatively, not all of the blocks shown in any flowchart need to be performed and/or executed. For example, if a given flowchart has five blocks containing functions/acts, it may be the case that only three of the five blocks are performed and/or executed. In this example, any of the three of the five blocks may be performed and/or executed.

A statement that a value exceeds (or is more than) a first threshold value may be equivalent to a statement that the value meets or exceeds a second threshold value that is slightly greater (or lower) than the first threshold value, e.g., the second threshold value being one value higher (or lower) than the first threshold value in the resolution of a relevant system. A statement that a value is less than (or is within) a first threshold value may be equivalent to a statement that the value is less than or equal to a second threshold value that is slightly lower (or greater) than the first threshold value, e.g., the second threshold value being one value lower (or greater) than the first threshold value in the resolution of the relevant system.

Specific details are given in the description to provide a thorough understanding of example configurations (including implementations). However, configurations may be practiced without these specific details. For example, well-known circuits, processes, algorithms, structures, and techniques have been shown without unnecessary detail in order to avoid obscuring the configurations. This description provides example configurations only, and does not limit the scope, applicability, or configurations of the claims. Rather, the preceding description of the configurations will provide those skilled in the art with an enabling description for implementing described techniques. Various changes may be made in the function and arrangement of elements without departing from the spirit or scope of the disclosure.

Having described several example configurations, various modifications, alternative constructions, and equivalents may be used without departing from the spirit of the disclosure. For example, the above elements may be components of a larger system, wherein other rules may take precedence over or otherwise modify the application of various implementations or techniques of the present disclosure. Also, a number of steps may be undertaken before, during, or after the above elements are considered.

Having been provided with the description and illustration of the present application, one skilled in the art may envision variations, modifications, and alternate embodiments falling within the general inventive concept discussed in this application that do not depart from the scope of the following claims. 

1. A system for facilitating manufacturing, the system comprising: a user interface for at least receiving input from a user and for providing output to a user; a communication mechanism for enabling communication between the user interface and at least one piece of machinery or at least one sensor; and at least one containerized processing unit configured to run at least one driver providing communication between the user interface and the at least one piece of machinery, wherein the at least one driver enables the user to modify at least one operational parameter related to the at least one piece of machinery the at least one sensor.
 2. The system of claim 1, wherein the at least one operational parameter relates to execution of at least one process performed by the at least one piece of machinery.
 3. The system of claim 1, wherein the communication mechanism enables communication with the at least one piece of machinery via a communication protocol selected from the group consisting of MTConnect, OPC Unified Architecture, Modbus, and controller area network bus.
 4. The system of claim 1, wherein the communication mechanism enables communication with the at least one piece of machinery via at least one of radio-frequency identification and barcode communication.
 5. The system of claim 1, further comprising a network-connected storage for storing information related to the at least one driver.
 6. The system of claim 1, wherein the at least one containerized processing unit ensures system integrity by detecting at least one of over voltage, under voltage, and a short circuit in the system.
 7. The system of claim 1, wherein the containerized processing unit enables a user to modify the driver and to receive feedback regarding the modification in substantially real time.
 8. A method for facilitating manufacturing, the method comprising: providing a user interface for at least receiving input from a user and for providing output to a user; enabling communication, via a communication mechanism, between the user interface and at least one piece of machinery or at least one sensor; and running, on at least one containerized processing unit, at least one driver providing communication between the user interface and the at least one piece of machinery, wherein the at least one driver enables the user to modify at least one operational parameter related to the at least one piece of machinery or the at least one sensor.
 9. The method of claim 8, wherein the at least one operational parameter relates to execution of at least one process performed by the at least one piece of machinery.
 10. The method of claim 8, further comprising receiving at least one modification to the driver from a user.
 11. The method of claim 10, further comprising providing feedback to the user regarding the modification to the driver in substantially real time.
 12. The method of claim 8, wherein the communication mechanism enables communication with the at least one piece of machinery via a communication protocol selected from the group consisting of MTConnect, OPC Unified Architecture, Modbus, and controller area network bus.
 13. The method of claim 8, wherein the communication mechanism enables communication with the at least one piece of machinery at least one of radio-frequency identification and barcode communication.
 14. The method of claim 8, further comprising storing, via a network-connected storage, information related to the at least one driver.
 15. The method of claim 8, further comprising detecting, via the at least one containerized processing unit, at least one of over voltage, under voltage, and a short circuit in the system. 